package io.datajek.springbasics.movierecommendersystem.Lesson11;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
public class RecommenderImplementation {

    private Logger logger = LoggerFactory.getLogger(this.getClass());
    private Filter filter;

//    创建setter方法，注入Filter依赖关系
    @Autowired
    public void setFilter(Filter filter){
        logger.info("In RecommenderImplementation setter method...dependency injection");
        this.filter = filter;
    }

    @PostConstruct
    public void postConstruct(){
//        初始化代码
        logger.info("In RecommenderImplementation postConstruct method");
    }

    @PreDestroy
    public void preDestroy(){
//        用于清理的代码
        logger.info("In RecommenderImplementation preDestroy method");
    }


//    @Autowired
//    @Qualifier("CLF")
//    private Filter contentBasedFilter;

    public String[] recommendMovies (String movie){
//        打印正在使用的接口实现的名称
//        System.out.println("\nName of the filter in use: " + filter + "\n");
        String[] results = filter.getRecommendations("Finding Dory");
        return results;
    }

}
